<?php

/**
 * Green Calc
 * Calc entry point file for Calc Component (reserved. using plugin Calc)
 * 2009-2014 All rights reserved
 * @link http://www.greenkey.ru
 * @license GNU/GPL v3
 */
// No direct access
defined('_JEXEC') or die;

jimport('joomla.application.component.view');

/**
 * HTML View class for the Calc Component
 *
 */
class CalcViewCalc extends JViewLegacy {

    // Test param from menu
    //protected $sefie;

    // Массив определенных переменных
    protected $calc_vars;
    
    // Массив объектов ввода
    protected $inputs;

    function display($tpl = null) {

        try {
            // Show selfie
            //$this->selfie = $this->get('selfie');

            //$this->item = $this->get('Calc');
            $this->item = $this->get('Item');

            $iv = new JRegistry;
            $iv->loadString($this->item->variables);

            $this->calc_vars = $this->get('CalcVars');
            
            foreach ($iv->toObject() as $key => $value) {
                $this->inputs[$key]->desc = $value;
                $x = $this->calc_vars[$key]->vvalues;
                if ($x) {
                    $opt = new JRegistry;
                    $opt->loadString($x);
                    $this->inputs[$key]->options = $opt->toArray();
                }
            }

            // Подготавливаем документ.
            $this->_prepareDocument();

            parent::display($tpl);
        } catch (Exception $e) {
            JFactory::getApplication()->enqueueMessage(JText::_('COM_CALC_ERROR_OCCURRED'), 'error');
            JLog::add($e->getMessage(), JLog::ERROR, 'com_calc');
        };
    }

    /**
     * Подготовка документа
     * @return  void
     */
    protected function _prepareDocument() {
        $app = JFactory::getApplication();
        $menus = $app->getMenu();
        $title = null;

        // Так как приложение устанавливает заголовок страницы по умолчанию,
        // мы получаем его из пункта меню.
        $menu = $menus->getActive();

        if ($menu) {
            $this->item->params->def('page_heading', $this->item->params->get('page_title', $menu->title));
        } else {
            $this->item->params->def('page_heading', JText::_('COM_CALC_DEFAULT_PAGE_TITLE'));
        }

        // Получаем заголовок страницы в браузере из параметров.
        $title = $this->item->params->get('page_title', '');

        if (empty($title)) {
            $title = $app->getCfg('sitename');
        } elseif ($app->getCfg('sitename_pagetitles', 0) == 1) {
            $title = JText::sprintf('JPAGETITLE', $app->getCfg('sitename'), $title);
        } elseif ($app->getCfg('sitename_pagetitles', 0) == 2) {
            $title = JText::sprintf('JPAGETITLE', $title, $app->getCfg('sitename'));
        }

        if (empty($title)) {
            $title = $this->item->caption;
        }

        // Устанавливаем заголовок страницы в браузере.
        $this->document->setTitle($title);

        // Добавляем поддержку метаданных из пункта меню.
        if ($this->item->params->get('menu-meta_description')) {
            $this->document->setDescription($this->item->params->get('menu-meta_description'));
        }

        if ($this->item->params->get('menu-meta_keywords')) {
            $this->document->setMetadata('keywords', $this->item->params->get('menu-meta_keywords'));
        }

        if ($this->item->params->get('robots')) {
            $this->document->setMetadata('robots', $this->item->params->get('robots'));
        }
    }

}

?>
